package com.csdj.server.controller;


import com.csdj.server.pojo.Position;
import com.csdj.server.pojo.RespBean;
import com.csdj.server.service.IPositionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author xyx
 * @since 2022-12-12
 * 职位 管理
 * 对菜单地址 都做了一个权限控制
 * 职位管理 属于 基础信息设置 栏目
 */
@RestController
@RequestMapping("/system/basic/pos")
@Api(tags = "职位管理PositionController")
public class PositionController {

    @Autowired
    private IPositionService positionService;

    //实现职位管理的 添加 删除 修改 查询

    /**
     * 查询 职位信息
     * @return
     */
    @ApiOperation(value = "职位查询")
    @GetMapping("/")
    public List<Position> getPositionInfo(){
        return positionService.list();
    }

    /**
     * 添加职位信息
     * @param position
     * @return
     */
    @ApiOperation(value = "添加职位")
    @PostMapping("/")
    public RespBean addPosition(@RequestBody Position position){
        //设置 职位的创建日期时间
        position.setCreateDate(LocalDateTime.now());
        if(positionService.save(position)){
            return RespBean.success("添加成功!");
        }
        return RespBean.error("添加失败!");
    }

    /**
     * 修改职位信息
     * @param position
     * @return
     */
    @ApiOperation(value = "修改职位")
    @PutMapping("/")
    public RespBean updatePosition(@RequestBody Position position){
        if(positionService.updateById(position)){
            return RespBean.success("修改成功!");
        }
        return RespBean.error("修改失败!");
    }

    /**
     * 删除职位信息
     * @param id
     * @return
     */
    @ApiOperation(value = "删除职位")
    @DeleteMapping("/{id}")
    public RespBean deletePositionById(@PathVariable Integer id){
        if(positionService.removeById(id)){
            return RespBean.success("删除成功!");
        }
        return RespBean.error("删除失败!");
    }

    @ApiOperation(value = "批量删除职位信息")
    @DeleteMapping("/")
    public RespBean deletePositionByIds(Integer[] ids){
        //Arrays.asList() 数组转化集合
        if(positionService.removeByIds(Arrays.asList(ids))){
            return RespBean.success("批量删除成功!");
        }
        return RespBean.error("批量删除失败!");
    }
}
